package com.example.autopia.utilities

import android.content.ContentResolver
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.util.Base64
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream

class ImageManager {

    fun imageToByteArray(imageUri: Uri,contentResolver : ContentResolver): String? {

        val inputStream: InputStream? = contentResolver.openInputStream(imageUri)
        // Проверяем размер изображения
        if (inputStream != null) {
            val length = inputStream.available()
            val maxSize = 2 * 1024 * 1024 // 2 мегабайта (в байтах)

            if (length > maxSize) {
                // Изображение слишком большое, не преобразовываем его
                return null
            }
        }
        val bitmap: Bitmap? = BitmapFactory.decodeStream(inputStream)
        val byteArrayOutputStream = ByteArrayOutputStream()
        bitmap?.compress(Bitmap.CompressFormat.JPEG, 50, byteArrayOutputStream)
        val byteArray  =  byteArrayOutputStream.toByteArray()

        return Base64.encodeToString(byteArray, Base64.DEFAULT)
    }

    fun byteArrayToBitmap(base64String: String): Bitmap? {
        return try {
            val byteArray = Base64.decode(base64String, Base64.DEFAULT)
            BitmapFactory.decodeByteArray(byteArray, 0, byteArray.size)
        } catch (e: Exception) {
            e.printStackTrace()
            null
        }
    }

    fun getFileNameWithExtension(filePath: String): String {
        val file = File(filePath)
        return file.name // Это вернет название файла с расширением
    }

}